/**
 * AquaLifeTest.java
 *
 * Create an abstract class called Aqualife.
 *
 * Aqualife has the following attributes ; name, age, lake-fish or ocean-fish,
 * Aqualife defines 2 abstract methods called eat() and procreates().
 * A third concrete method called Breathes() displays:
 * ‘These creatures breathe from gills.’
 *
 * Subclasses of Aqualife are fish, and whale.
 * Fish has an attribute which stores whether the fish is a
 * herbivore or a carnivore.
 *
 * The eat method checks whether herbivore and prints ‘This fish eats veggies’
 * for herbivores and prints ‘This fish eats other fish’ for carnivores.
 * The procreates method prints ‘Fish lay eggs’
 *
 * Whale has an attribute that specifies whether the whale is a blue whale or
 * a killer whale. If the whale is a blue whale, it eats veggies,
 * if it is a killer whale it eats meat.
 * 
 * The procreates method prints that whales are mammals.
 *
 * Override the breathes method from the parent class.
 * This method must print ‘These mammals breathe above water’.
 *
 * @author: John Thomason
 *    Date: Nov 22, 2008 / 11:34:22 AM
 *   Class: CS222 - Java Programming II
 * Seminar: 3
 * Mid Term Exam
 *
 */

/**
 * AquaLifeTest Class
 */
public class AquaLifeTest {

    /**
    * Application Entry Point
    * @param args The command line arguments
    */
    public static void main(String[] args) {

        //Create a new default Fish (Blue Gill) and display
        Aqualife fish = new Fish();
        prt(fish.toString() + "\n");

        //Create a new default Whale (Blue) and display
        Aqualife whale = new Whale();
        prt(whale.toString() + "\n");

        //Create a new carnivore fish (Pike) and display
        fish = new Fish(Aqualife.FishType.LAKE,
                        Fish.Predation.CARNIVORE, "Pike", 2);
        prt(fish.toString() + "\n");

        //Create a new Killer Whale and display
        whale = new Whale(Whale.Species.KILLER, "Tubby", 3);
        prt(whale.toString() + "\n");

    }//end main()


    /**
     * Display a formatted message string.
     *
     * @param msg   The formatted message string
     */
    public static void prt(String msg){
      System.out.print(msg);
    }//prt(String)

}//AquaLifeTest class
